As the virtualization technique for computer resources improves, a server virtualization which enables a plurality of virtual machines operated on a single physical server to concurrently execute a plurality of tasks is being used widely. Similarly, a capacity virtualization is widely being used, in which when an external apparatus such as a host computer demands a data storing area, unit physical storage areas are provided from a pool consisting of a plurality of the unit physical storage areas, each of which being created by dividing a physical storage area of a storage device. This capacity virtualization is generally known as a “thin provisioning.”
The virtual machine of the server virtualization each uses a logical volume (Logical Unit, LU) as a dedicated logical storage area for a data storage area. Such a configuration is usually employed that, where a snapshot pair is created with two LUs, a primary volume (PVOL) and a secondary volume (SVOL), the SVOL is assigned to the LU for the virtual machine. In this configuration, not an ordinary LU but a virtual volume (VVOL) is usually used for the SVOL. The VVOL is constructed from data stored in a PVOL and difference data from the data in the PVOL. When the VVOL is used for a data storage area of the virtual machine, the LU is not necessarily provided to each virtual machine and the storage device is efficiently utilized. The difference data is stored in an LU dedicated for storing only the difference data. A snapshot pair of the PVOL and the VVOL is created for each virtual machine and the snapshot pair is subject to a split status, then the VVOL can be used for a data storage area of the virtual machine to which the above VVOL is assigned. Using the function of the snapshot pair, data processing such as backup and restoration of data can be timely carried out.
In order to apply the snapshot function effectively, the technique disclosed, for example, in PTL 1 is proposed. PTL 1 discloses, for example, a storage system having a physical snapshot executing part writing updated data into both a primary storage device and a secondary storage device, a logical snapshot executing part writing input data into the primary storage device and difference data of difference between the input data and data prior to update into the secondary storage device, an update data determination part that, when creation of snapshot data is requested by an upper apparatus, determines whether or not there exist data to be updated in the primary storage device with respect to the creation request, a data update amount determination part that when the update data determination part detects presence of the updated data in the primary storage device, determines whether or not the data update amount in the primary storage device is larger than a predetermined amount, and a snapshot executing part selector that, when the data update amount determination part determines the data update amount in the primary storage device is larger than the predetermined amount, selectively drives the physical snapshot executing part, and, when the data update amount determination part determines the data update amount in the primary storage device is smaller than the predetermined amount or the data to be updated does not exist in the primary storage device, selectively drives the logical snapshot executing part. PTL 1 describes when creating snapshot data in the storage system, it can be prevented that a data space for saving data prior to update is filled with saved data from the primary (logical) volume and the process of creation of the snapshot data is abnormally aborted.